package com.py.inbound.domain;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.springframework.data.annotation.Transient;

/**
 * 入库管理对象 py_inbound
 *
 * @author py
 * @date 2024-11-21
 */
public class PyInbound extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 序号
     */
    private Integer inventoryId;


    /**
     * 入库单号
     */
    @Excel(name = "入库单号")
    private String inventoryNumber;


    private String warehouseName;//扩展字段仓库名称


    private String locationName;
    private String productNames;//扩展字段商品名称集合
    private String productCode;
    private String productModel;

    private String userNameJBR;//扩展字段经办人名称


    private String userNameZDR;
    private String userNameSHR;
    private Integer rkNum;
    private BigDecimal rkAmount;
    private String deptName;

    public Integer getInventoryValue() {
        return inventoryValue;
    }

    public void setInventoryValue(Integer inventoryValue) {
        this.inventoryValue = inventoryValue;
    }

    private Integer inventoryValue;
//    private String deptName;
    /**
     * 入库类型
     */
    @Excel(name = "入库类型")
    private Integer inventoryType;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Long status;


    /**
     * 仓库名称
     */
    @Excel(name = "仓库名称外键id")
    private Integer warehouseId;

    /**
     * 入库日期
     */
    @Excel(name = "入库日期")
    private String inboundDate;

    /**
     * 关联单号
     */
    @Excel(name = "关联单号")
    private String relatedNumber;

    /**
     * 供应商
     */
    private Long supplierId;

    /**
     * 联系人
     */
    private String contactPerson;


    /**
     * 联系方式
     */
    private String contactNumber;
    private List<PyInboundDetalis> pyInboundDetalisList;

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getLocationName() {
        return locationName;
    }

    public void setLocationName(String locationName) {
        this.locationName = locationName;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    /**
     * 经办人
     */
    @Excel(name = "经办人")
    private Long handler;

    /**
     * 入库仓库
     */
    private Long storageWarehouse;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 入库数量
     */
    @Excel(name = "入库数量")
    private Long instockNum;

    /**
     * 入库货品
     */
    @Excel(name = "入库货品")
    private String inventoryGoods;

    /**
     * 入库金额
     */
    @Excel(name = "入库金额")
    private BigDecimal inventoryAmount;

    /**
     * 制单人
     */
    @Excel(name = "制单人")
    private Integer creator;

    /**
     * 所在部门
     */
    private Long department;

    /**
     * 制单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "制单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationTime;

    /**
     * 审核人
     */
    @Excel(name = "审核人")
    private Long sureMan;

    /**
     * 审核时间
     */
    @Excel(name = "审核时间")
    private String sureDate;

    public String getCustomer() {
        return customer;
    }

    public void setCustomer(String customer) {
        this.customer = customer;
    }

    @Excel(name = "客户名称")
    private String customer;
    /**
     * 附件信息
     */
    private String attachmentInfo;

    /**
     * 更新人
     */
    private String updaterBy;

    /**
     * 逻辑删除
     */
    private String isDelete;
    @Transient
    private Integer number;

    public List<Object> getFileList() {
        return fileList;
    }

    public void setFileList(List<Object> fileList) {
        this.fileList = fileList;
    }

    private String supplierName;

//    public int getPageNum() {
//        return pageNum;
//    }
//
//    public void setPageNum(int pageNum) {
//        this.pageNum = pageNum;
//    }
//
//    public int getPageSize() {
//        return pageSize;
//    }
//
//    public void setPageSize(int pageSize) {
//        this.pageSize = pageSize;
//    }

    @Transient
    private List<Object> fileList;
//    @Transient
//    private int pageNum;
//    @Transient
//    private int pageSize;

    public List<Date> getInDateList() {
        return inDateList;
    }

    public void setInDateList(List<Date> inDateList) {
        this.inDateList = inDateList;
    }

    public List<Date> getZdDateList() {
        return zdDateList;
    }

    public void setZdDateList(List<Date> zdDateList) {
        this.zdDateList = zdDateList;
    }

    /**
     * 联系电话
     */

    private String contactPhone;
    private List<Date> inDateList; //前端入库时间开始结束
    private List<Date> zdDateList; //前端入库时间开始结束
    private List<Product> productList;

    public List<Product> getProductList() {
        return productList;
    }

    public void setProductList(List<Product> productList) {
        this.productList = productList;
    }

    public String getUserNameJBR() {
        return userNameJBR;
    }

    public void setUserNameJBR(String userNameJBR) {
        this.userNameJBR = userNameJBR;
    }

    public String getUserNameZDR() {
        return userNameZDR;
    }

    public void setUserNameZDR(String userNameZDR) {
        this.userNameZDR = userNameZDR;
    }

    public String getUserNameSHR() {
        return userNameSHR;
    }

    public void setUserNameSHR(String userNameSHR) {
        this.userNameSHR = userNameSHR;
    }

    public Integer getRkNum() {
        return rkNum;
    }

    public void setRkNum(Integer rkNum) {
        this.rkNum = rkNum;
    }

    public BigDecimal getRkAmount() {
        return rkAmount;
    }

    public void setRkAmount(BigDecimal rkAmount) {
        this.rkAmount = rkAmount;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getProductNames() {
        return productNames;
    }

    public void setProductNames(String productNames) {
        this.productNames = productNames;
    }


    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    public Integer getCodeId() {
        return codeId;
    }

    public void setCodeId(Integer codeId) {
        this.codeId = codeId;
    }

    @Transient
    private Integer codeId;

    /**
     * 入库明细表
     */
    @Transient
    private Integer quantityReceived;

    @Transient
    private BigDecimal inboundPrice;

    @Transient
    private String nameCount;

    public Integer getProductUnit() {
        return productUnit;
    }

    public void setProductUnit(Integer productUnit) {
        this.productUnit = productUnit;
    }

    @Transient
    private String productName;

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getProductModel() {
        return productModel;
    }

    public void setProductModel(String productModel) {
        this.productModel = productModel;
    }

    public String getProductTypeName() {
        return productTypeName;
    }

    public void setProductTypeName(String productTypeName) {
        this.productTypeName = productTypeName;
    }

    @Transient
    private Integer productUnit;
    private String productTypeName;

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }


    public String getNameCount() {
        return nameCount;
    }

    public void setNameCount(String nameCount) {
        this.nameCount = nameCount;
    }

    public Integer getQuantityReceived() {
        return quantityReceived;
    }

    public void setQuantityReceived(Integer quantityReceived) {
        this.quantityReceived = quantityReceived;
    }

    public BigDecimal getInboundPrice() {
        return inboundPrice;
    }

    public void setInboundPrice(BigDecimal inboundPrice) {
        this.inboundPrice = inboundPrice;
    }


    public void setInventoryId(Integer inventoryId) {
        this.inventoryId = inventoryId;
    }

    public Integer getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(Integer warehouseId) {
        this.warehouseId = warehouseId;
    }

    public Integer getInventoryId() {
        return inventoryId;
    }

    public void setInventoryNumber(String inventoryNumber) {
        this.inventoryNumber = inventoryNumber;
    }

    public String getInventoryNumber() {
        return inventoryNumber;
    }

    public void setInventoryType(Integer inventoryType) {
        this.inventoryType = inventoryType;
    }

    public Integer getInventoryType() {
        return inventoryType;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public void setInboundDate(String inboundDate) {
        this.inboundDate = inboundDate;
    }

    public String getInboundDate() {
        return inboundDate;
    }

    public void setRelatedNumber(String relatedNumber) {
        this.relatedNumber = relatedNumber;
    }

    public String getRelatedNumber() {
        return relatedNumber;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public void setContactPerson(String contactPerson) {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() {
        return contactPerson;
    }

    public void setContactNumber(String contactNumber) {
        this.contactNumber = contactNumber;
    }

    public String getContactNumber() {
        return contactNumber;
    }

    public void setHandler(Long handler) {
        this.handler = handler;
    }

    public Long getHandler() {
        return handler;
    }

    public void setStorageWarehouse(Long storageWarehouse) {
        this.storageWarehouse = storageWarehouse;
    }

    public Long getStorageWarehouse() {
        return storageWarehouse;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setInstockNum(Long instockNum) {
        this.instockNum = instockNum;
    }

    public Long getInstockNum() {
        return instockNum;
    }

    public void setInventoryGoods(String inventoryGoods) {
        this.inventoryGoods = inventoryGoods;
    }

    public String getInventoryGoods() {
        return inventoryGoods;
    }

    public void setInventoryAmount(BigDecimal inventoryAmount) {
        this.inventoryAmount = inventoryAmount;
    }

    public BigDecimal getInventoryAmount() {
        return inventoryAmount;
    }

    public void setCreator(Integer creator) {
        this.creator = creator;
    }

    public Integer getCreator() {
        return creator;
    }

    public void setDepartment(Long department) {
        this.department = department;
    }

    public Long getDepartment() {
        return department;
    }

    public void setCreationTime(Date creationTime) {
        this.creationTime = creationTime;
    }

    public Date getCreationTime() {
        return creationTime;
    }

    public void setSureMan(Long sureMan) {
        this.sureMan = sureMan;
    }

    public Long getSureMan() {
        return sureMan;
    }

    public void setSureDate(String sureDate) {
        this.sureDate = sureDate;
    }

    public String getSureDate() {
        return sureDate;
    }

    public void setAttachmentInfo(String attachmentInfo) {
        this.attachmentInfo = attachmentInfo;
    }

    public String getAttachmentInfo() {
        return attachmentInfo;
    }

    public void setUpdaterBy(String updaterBy) {
        this.updaterBy = updaterBy;
    }

    public String getUpdaterBy() {
        return updaterBy;
    }


    public List<PyInboundDetalis> getPyInboundDetalisList() {
        return pyInboundDetalisList;
    }

    public void setPyInboundDetalisList(List<PyInboundDetalis> pyInboundDetalisList) {
        this.pyInboundDetalisList = pyInboundDetalisList;
    }

    @Override
    public String toString() {
        return "PyInbound{" +
                "inventoryId=" + inventoryId +
                ", inventoryNumber='" + inventoryNumber + '\'' +
                ", warehouseName='" + warehouseName + '\'' +
                ", locationName='" + locationName + '\'' +
                ", productNames='" + productNames + '\'' +
                ", productCode='" + productCode + '\'' +
                ", productModel='" + productModel + '\'' +
                ", userNameJBR='" + userNameJBR + '\'' +
                ", userNameZDR='" + userNameZDR + '\'' +
                ", userNameSHR='" + userNameSHR + '\'' +
                ", rkNum=" + rkNum +
                ", rkAmount=" + rkAmount +
                ", deptName='" + deptName + '\'' +
                ", inventoryValue=" + inventoryValue +
                ", inventoryType=" + inventoryType +
                ", status=" + status +
                ", warehouseId=" + warehouseId +
                ", inboundDate='" + inboundDate + '\'' +
                ", relatedNumber='" + relatedNumber + '\'' +
                ", supplierId=" + supplierId +
                ", contactPerson='" + contactPerson + '\'' +
                ", contactNumber='" + contactNumber + '\'' +
                ", pyInboundDetalisList=" + pyInboundDetalisList +
                ", handler=" + handler +
                ", storageWarehouse=" + storageWarehouse +
                ", remarks='" + remarks + '\'' +
                ", instockNum=" + instockNum +
                ", inventoryGoods='" + inventoryGoods + '\'' +
                ", inventoryAmount=" + inventoryAmount +
                ", creator=" + creator +
                ", department=" + department +
                ", creationTime=" + creationTime +
                ", sureMan=" + sureMan +
                ", sureDate='" + sureDate + '\'' +
                ", customer='" + customer + '\'' +
                ", attachmentInfo='" + attachmentInfo + '\'' +
                ", updaterBy='" + updaterBy + '\'' +
                ", isDelete='" + isDelete + '\'' +
                ", number=" + number +
                ", supplierName='" + supplierName + '\'' +
                ", fileList=" + fileList +

                ", contactPhone='" + contactPhone + '\'' +
                ", inDateList=" + inDateList +
                ", zdDateList=" + zdDateList +
                ", productList=" + productList +
                ", codeId=" + codeId +
                ", quantityReceived=" + quantityReceived +
                ", inboundPrice=" + inboundPrice +
                ", nameCount='" + nameCount + '\'' +
                ", productName='" + productName + '\'' +
                ", productUnit=" + productUnit +
                ", productTypeName='" + productTypeName + '\'' +
                '}';
    }

    public void setIsDelete(String isDelete) {
        this.isDelete = isDelete;
    }


    public String getIsDelete() {
        return isDelete;
    }


}
